Fric-frac model refactoring
Home

Fric-frac model refactoring

Fric-frac model refactoring

Refactoren (Engels: refactoring) is het herstructureren van de broncode van een computerprogramma met als doel de leesbaarheid en onderhoudbaarheid te verbeteren of het stuk code te vereenvoudigen. Het refactoren van broncode verandert de werking van de software niet: elke refactorstap is een kleine, ongedaan te maken stap die de leesbaarheid verhoogt zonder de werking aan te passen. Het wordt met name gebruikt bij extreme programming, een vorm van agile-softwareontwikkeling. (Wikipedia)
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. (Martin Fowler)

De model klassen

  1. Verwijder in de DBContext klasse:
    1. public virtual DbSet<EfmigrationsHistory> EfmigrationsHistory { get; set; }
    2. de methode protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. Country
    1. Wat er stond:
      using System;
      using System.Collections.Generic;
      using System.ComponentModel.DataAnnotations;
      using System.ComponentModel.DataAnnotations.Schema;
      
      namespace FricFrac.Models.FricFrac
      {
          public partial class Country
          {
              public Country()
              {
                  Person = new HashSet<Person>();
              }
      
              [Required]
              [StringLength(50)]
              public string Name { get; set; }
              [StringLength(2)]
              public string Code { get; set; }
              [Column(TypeName = "int(11)")]
              public int Id { get; set; }
              [StringLength(256)]
              public string Desc { get; set; }
      
              [InverseProperty("Country")]
              public ICollection<Person> Person { get; set; }
          }
      }
    2. Wat het moet zijn:
      1. De waarde van het name in attribuut in de HTML is anders dan de naam van eigenschap van de klasse. Dat lossen we op door de FromForm data-annotatie te gebruiken.
      2. We verwijderen de Person property en de initialisering ervan in de constructor.
      3. Dan ziet de code er zo uit:
        using Microsoft.AspNetCore.Mvc;
        using System.ComponentModel.DataAnnotations;
        using System.ComponentModel.DataAnnotations.Schema;
        
        namespace FricFrac.Models.FricFrac
        {
            public partial class Country
            {
                public Country()
                {
                }
        
                [Required]
                [StringLength(50)]
                [FromForm(Name = "Country-Name")]
                public string Name { get; set; }
                [Required]
                [StringLength(2)]
                [FromForm(Name = "Country-Code")]
                public string Code { get; set; }
                [Column(TypeName = "int(11)")]
                [FromForm(Name = "Country-Id")]
                public int Id { get; set; }
                [FromForm(Name = "Country-Desc")]
                [StringLength(256)]
                public string Desc { get; set; }
            }
        }
  3. Verwijder de migratiegeschiedenis door de Migrations map leeg te maken.
  4. Verwijder alles uit de DBContext klasse (Docent300Context) totdat je alleen hetvolgende overhoudt:
    using System;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.EntityFrameworkCore.Metadata;
    
    namespace FricFrac.Models.FricFrac
    {
        public partial class Docent300Context : DbContext
        {
            public virtual DbSet<Country> Country { get; set; }
            public virtual DbSet<Event> Event { get; set; }
            public virtual DbSet<EventCategory> EventCategory { get; set; }
            public virtual DbSet<EventTopic> EventTopic { get; set; }
            public virtual DbSet<Person> Person { get; set; }
            public virtual DbSet<Role> Role { get; set; }
            public virtual DbSet<User> User { get; set; }
    
            public Docent300Context(DbContextOptions<Docent300Context> options) : base(options)
            {
            }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                }
            }
        }
    }

JI
2018-01-21 15:00:49